package de.fh.dortmund.pk1.aufgabe1.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import de.fh.dortmund.pk1.aufgabe1.cluedo.Geheimakte;
import de.fh.dortmund.pk1.aufgabe1.cluedo.Spieler;
import de.fh.dortmund.pk1.aufgabe1.cluedo.StartCluedo;

public class StartSettings extends JFrame {

	static JPanel settings = new JPanel();
	private static StartSettings startSettings;
	public StartSettings() {

		settings.setBounds(0, 0, 200, 230);

		JButton startGameButton = new JButton();
		JButton loadGameButton = new JButton();
		
		final JComboBox spieler1ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		final JComboBox spieler2ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		final JComboBox spieler3ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		final JComboBox spieler4ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		final JComboBox spieler5ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		final JComboBox spieler6ComboBox = new JComboBox(new String[] {("Mensch"),("Computer"), });
		
		JLabel spieler1Label = new JLabel();
		JLabel spieler2Label = new JLabel();
		JLabel spieler3Label = new JLabel();
		JLabel spieler4Label = new JLabel();
		JLabel spieler5Label = new JLabel();
		JLabel spieler6Label = new JLabel();
		
		spieler1Label.setText("Spieler 1: ");
		spieler2Label.setText("Spieler 2: ");
		spieler3Label.setText("Spieler 3: ");
		spieler4Label.setText("Spieler 4: ");
		spieler5Label.setText("Spieler 5: ");
		spieler6Label.setText("Spieler 6: ");
		
		startGameButton.setText("starten");
		loadGameButton.setText("laden");
		
		spieler1ComboBox.setBounds(60, 0, 130, 20);
		spieler1Label.setBounds(0, 0, 200, 20);
		spieler2ComboBox.setBounds(60, 25, 130, 20);
		spieler2Label.setBounds(0, 25, 200, 20);
		spieler3ComboBox.setBounds(60, 50, 130, 20);
		spieler3Label.setBounds(0, 50, 200, 20);
		spieler4ComboBox.setBounds(60, 75, 130, 20);
		spieler4Label.setBounds(0, 75, 200, 20);
		spieler5ComboBox.setBounds(60, 100, 130, 20);
		spieler5Label.setBounds(0, 100, 200, 20);
		spieler6ComboBox.setBounds(60, 125, 130, 20);
		spieler6Label.setBounds(0, 125, 200, 20);
		
		startGameButton.setBounds(5, 160, 85, 30);
		loadGameButton.setBounds(100, 160, 85, 30);
		
		settings.add(spieler1Label);
		settings.add(spieler1ComboBox);
		settings.add(spieler2Label);
		settings.add(spieler2ComboBox);
		settings.add(spieler3Label);
		settings.add(spieler3ComboBox);
		settings.add(spieler4Label);
		settings.add(spieler4ComboBox);
		settings.add(spieler5Label);
		settings.add(spieler5ComboBox);
		settings.add(spieler6Label);
		settings.add(spieler6ComboBox);
		
		settings.add(startGameButton);
		settings.add(loadGameButton);

		startGameButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				startSettings.show(false);
				Geheimakte.setGeheimakte();
				StartCluedo.spielerErstellen(spieler1ComboBox.getSelectedItem().toString(),spieler2ComboBox.getSelectedItem().toString(),spieler3ComboBox.getSelectedItem().toString(),spieler4ComboBox.getSelectedItem().toString(),spieler5ComboBox.getSelectedItem().toString(),spieler6ComboBox.getSelectedItem().toString());
				Spielbrett.startSpielbrett();
				startSettings.dispose();
			}
		});
		
	  	final JFileChooser fc = new JFileChooser();
		loadGameButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				int returnVal = fc.showOpenDialog(StartSettings.this);
				if (returnVal == JFileChooser.APPROVE_OPTION) {
					File file = fc.getSelectedFile();
					startSettings.show(false);
					
				Spielbrett.startSpielbrett(file);
				startSettings.dispose();
				}
			}
		});
		

		this.setContentPane(settings);
		this.pack();

	}

	public static void startSettings() {
		startSettings = new StartSettings();
		startSettings.setSize(200, 260);
		startSettings.show();

	}

}